<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Event extends CI_Controller {

    public function __construct() {
        parent::__construct();
        session_start();
        $this->load->library('template');
        $this->load->helper('url');
        $this->load->helper('user_helper');
        $this->template->set_template('default');

        $this->template->add_css('public/css/bootstrap.css');
        $this->template->add_css('public/css/bootstrap-responsive.css');


//        $this->template->add_js('public/js/jquery-1.9.1.js');
        $this->template->add_js('public/js/jquery-1.11.0.min.js');
//        $this->template->add_js('public/js/jquery.min.js');
        $this->template->add_js('public/js/bootstrap.min.js');
        $data["newUrl"] = base_url() . "index.php/event/";
        $data["createEventUrl"] = base_url() . "index.php/event/create";
        $data["loginUrl"] = base_url() . "index.php/user/";
        $data["chatUrl"] = base_url() . "index.php/chat/";
        $data["registerUrl"] = base_url() . "index.php/user/register";
        $this->template->write_view('header', 'top_menu', $data, TRUE);
    }

    public function index() {
        //Load content, not load file
        $this->template->write('title', 'Sự kiện');
        $this->template->write_view('content', 'event/create');
        $this->template->load();
    }
    public function list_event() {
        //Load content, not load file
        $this->template->write('title', 'Danh sách sự kiện');
        $this->template->write_view('content', 'event/list');
        $this->template->load();
    }

    public function create() {
        $current_url = urlencode(current_url());
        if (is_login() != True) {
            redirect(base_url() . 'index.php/user/index?next=' . $current_url, 'refresh');
            return;
        }
        $this->template->write('title', 'Tạo sự kiện');
        $this->template->write_view('content', 'event/create');
//        $this->template->write_view('content', 'event/create_bk');
        $this->template->load();
    }

    public function create_process() {
        define("SUCCESS", "0");
        define("NOT_LOGIN", "1");
        define("EXPIRED", "2");
        define("NO_TITLE", "3");
        define("NO_PLACE", "4");
        
        $result = array();
        if (is_login() == true) {
            #check data trước
            #nếu data ko có thì biến
            #title
            if (isset($_POST['title']) && $_POST['title']!="" ){
                $title = $_POST['title'];
            }else{
                $result = array('err' => NO_TITLE);
                echo json_encode($result);
                return;
            }
            
            #$description
            if (isset($_POST['description']) && $_POST['description']!="" ){
                $description = $_POST['description'];
            }else{
                $description = "";
            }
            
            #place
            if (isset($_POST['place']) && $_POST['place']!="" ){
                $place = $_POST['place'];
            }else{
                $result = array('err' => NO_PLACE);
                echo json_encode($result);
                return;
            }
            
            #sex
            if (isset($_POST['sex']) && $_POST['sex']!="" ){
                $sex = $_POST['sex'];
            }else{
                $sex = "-1";// mặc định là sao cũng dc.
            }
            
            #sex
            if (isset($_POST['age']) && $_POST['age']!="" ){
                $age = $_POST['age'];
            }else{
                $age = "18-25";
            }
            //Xong phần kiểm tra data
            
            
            //Load database
            $this->load->model('mevent');
            $this->load->model('muser');
            $user_info = $this->muser->get_user_info($_SESSION['username']);
            //kiểm tra array này có tồn tại hay không
            //nếu nó có phần tử
            $is_login = true;
            if (sizeof($user_info) > 0) {
                //kiểm tra có id không
                if (isset($user_info['id']))
                    $id = $user_info['id'];
                else{
                   $is_login = false;
                }
                
            }else{
                //ko có id, có vấn đề gì đó, có thể là model lấy sai,
                //Hoặc cookie đã xóa,...
                // trả về thông tin chưa login.
                $is_login = false;
            }
           if($is_login == false){
                $result = array('err' => NOT_LOGIN);
                echo json_encode($result);
                return; //return thoát khỏi hàm.
            }
            
            date_default_timezone_set('Asia/Ho_Chi_Minh');
            $time_start = isset($_POST['start_time']) ? $_POST['start_time'] : date('Y-m-d H:i:s');
            $time_start_strtotime = strtotime($time_start);
            $time_start = date('Y-m-d H:i:s',$time_start_strtotime) ;
            
            $duration = (isset($_POST['duration'])) ? $_POST['duration'] : '1h';
            #http://pl1.php.net/substr
            $suffix_duration = substr($duration, -1);

            $time_now = date('d-m-Y H:i:s');
            $time_now_strtotime = strtotime($time_now);
            $time_now = date('Y-m-d H:i:s',$time_now_strtotime) ;
            
            $time_duration = substr($duration, 0, -1);
            if (strcmp($suffix_duration, 'h') == 0) {
                $time_end = strtotime($time_start . '+' . $time_duration . 'hours');
            } else {
                $time_end = strtotime($time_start . '+' . $time_duration . 'days');
            }

            if ($time_now_strtotime > $time_end) {
                $result = array('err' => EXPIRED);
                echo json_encode($result);
                return;
            }#ko có else.
            
            $info_event = array(
                "title" => $title,
                "description" =>$description,
                "place" => $place,
                "start_time" => $time_start,
                "duration" => $duration,
                "sex" => $sex,
                "age_range" => $age,
                "id_user" => $id,
                "public_time" => $time_now,
                "status" => "0");
            #đây là tạo event, có nghĩa là nó luôn phải là có hiệu lực mới được tạo
            #Vì nếu nó ko còn hiệu lực thì đã return ngay ở trên rồi.
            #nên status luôn là 0
                        
            #what the hell is that.
//            $result_event = $this->mevent->save($info_event);
//            echo json_encode($result_event);
            
            $event_id = $this->mevent->save($info_event);
            if($event_id!=False){
                $result = array("err" => SUCCESS,
                                "event_id" => $event_id );
                echo json_encode($result);
            }  
        } else {
            $error = array('error' => NOT_LOGIN);
            echo json_encode($error);
        }
    }

}

